iT邦幫忙

2021 iThome 鐵人賽

DAY 10
0
自我挑戰組

CPE題目練習系列 第 10

[Day10]Cubes

  • 分享至 

  • xImage
  •  

上一篇介紹了Beat the Spread!,是一題算出平均值的題目,算是基本的一題。

今天講解的題目是 Cubes
先附上程式碼
import java.util.;
import static java.lang.System.
;
public class main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n;
while(sc.hasNextInt() && (n=sc.nextInt())!=0){
int q=1,w=1;
while(pow(q)<n){
q++;
}
while(true){
if(pow(q)- pow(q-1)>n){
System.out.println("No solution");
break;
}
if(pow(q)-pow(w)==n){
System.out.println(q+" "+w);
break;
}else{
if(q==(w-1)){
q++;
w=1;
}else{
w++;
}
}
}
}
}

public static int pow(int n){
return nnn;
}
};

題目要求我們輸入一個數字N,N=X^3-Y^3,並求出X跟Y,
輸入時一樣是輸入0是結尾,輸出則是如果有X跟Y則輸出X跟Y,否則則是輸出No solution,
要解這題,首先要先從X跟Y開始找,因為X的3次方一定比N大,所以先設while開始跑,等X的三次方大於N結束,
之後再使X的三次方減Y的三次方,然後Y慢慢+1加上去,如果X的三次方減掉(X-1)的三次方也大於N的話,就代表這題是無解的,輸出No solution,
所以要先判斷X三次方減掉(X-1)的三次方是不是大於N,再判斷X的三次方減Y的三次方是不是等於N,不是的話再讓Y加上去,如果Y大於X就代表X不夠大,讓X+1並使Y從1開始從新判斷。
今天就講解到這邊。
明天也是新的題目,會介紹Bangla Numbers,繼續加油!


上一篇
[Day9]Beat the Spread!
下一篇
[Day11]Bangla Numbers
系列文
CPE題目練習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言